Methods, devices, and systems for live video streaming from a remote location based on a received request utilizing keep alive messages

ABSTRACT

Systems, devices, and methods for streaming video data being recorded once an operator user equipment is in the location specified by a requester user equipment based on selecting the operator user equipment from a determined set of one or more user equipment that may be based on a received acknowledgement message from the operator user equipment that the request was accepted and a set of criteria. In some embodiments, determining by the computing device the set of one or more user equipment to send the request to may be based on the received request and connectivity status. Additionally, the streaming may be based on a request from the requester user equipment being sent to a computing device for dispatching the operator user equipment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to and benefit of Provisional PatentApplication No. 62/210,850 filed Aug. 27, 2015 and Provisional PatentApplication No. 62/249,094 filed Oct. 30, 2015, both of which are herebyincorporated by reference for all purposes.

TECHNICAL FIELD OF ENDEAVOR

The field of the invention relates to on demand video streaming systems,and more particularly, to methods and devices for providing live videostreaming from a remote location.

BACKGROUND

A network in general comprises one or more devices, for example, clientsand servers, where the devices are in communication with each other.Computer networks are utilized for the streaming of videos, i.e., viaencoders and decoders. Live video streaming has enabled the sharing ofvideo instant and provides a platform that allows users to broadcastlive video content using a camera and a computer through the Internet,and viewers to play the content via the web, mobile devices, such as,iOS and Android apps. Exemplary cloud-based broadcasting and videocontent management platforms provide—once the live video signal has beentransmitted to the cloud—effective management and delivery of livevideo. Technology such as adaptive video quality effect live streamingof Internet content delivered in real-time. Live internet streamingrequires a form of source media (e.g. a video camera, an audiointerface, screen capture software), an encoder to digitize the content,a media publisher, and a content delivery network to distribute anddeliver the content. Additionally, streaming media may be defined asmultimedia that is constantly received by and presented to an end-userwhile being delivered by a provider.

SUMMARY

Embodiments may include methods, systems, and devices where, forexample, a device embodiment may include a processor and addressablememory, the addressable memory comprising a set of one or more rules,where the device is in communication with a first user equipment havinga processor and addressable memory and a second user equipment having aprocessor and addressable memory, and where the processor may beconfigured to: receive, from the first user equipment, a request todispatch the second user equipment, where the request for dispatch maycomprise a location for video data streaming; determine a set of one ormore user equipment to send the received request to, based on thereceived request and connectivity status, where the connectivity statusof the set of one or more user equipment may be determined based onaccessing a data store comprising associated keep alive messages andassociated statuses for each user equipment; select the second userequipment from the determined set of one or more user equipment based onat least one of: a received acknowledgement message from the second userequipment that the request was accepted and a set of criteria, where theset of criteria is determined based on available operators within travelrange and previous ranking of each operator; and transmit streamed videodata from the second user equipment to the first user equipment, wherethe streamed video data may be transmitted once recording has initiatedby the second user equipment based on the second user equipment being inthe location specified by the received request from the first userequipment.

Optionally, the determination of the set of criteria may be furtherbased on obtaining a provider coverage information for the locationspecified by the received request from the first user equipment.Additionally, the received request to dispatch may further comprise atleast one of: an estimated video quality threshold, an estimated time ofarrival, and an estimated value. In one embodiment, the associated keepalive message may comprise an authentication token and the associatedstatuses may comprise diagnostic information. The associated keep alivemessages and associated statuses may also be received as an encryptedmessage and decrypted by the computing device. Another exemplaryembodiment may be where the processor is configured to extract a uniqueidentification (ID) from the decrypted associated keep alive messagesand associated statuses for a user equipment based on the authenticationtoken having been successfully decrypted. In addition, the processor ofthe device may utilize a separate process to return a status updateimmediately to the user equipment of the set of one or more userequipment that sent the associated keep alive messages and associatedstatuses. Further, the processor of the device may be configured toreturn the status update based on whether the authentication token isfound to be valid via a check of a client blacklist table. Optionally,the device may further comprise a second data store for logging a set ofassociated information for each user equipment. In one embodiment, thedevice may be between the first user equipment and the second userequipment, thereby the device may be in communication with the firstuser equipment and the second user equipment via a set of communicationchannels.

Embodiments include methods, systems, and devices where, for example amethod embodiment may include the steps of: (a) sending, by a first userequipment having a processor and addressable memory, a request to acomputing device having a processor and addressable memory, fordispatching a second user equipment having a processor and addressablememory, where the request for dispatching an operator may comprise alocation for video data streaming; (b) determining, by the computingdevice, a set of one or more user equipment to send the request to, thedetermining based on the received request and connectivity status, wherethe connectivity status of the set of one or more user equipment may bedetermined based on accessing a data store comprising associated keepalive messages and associated statuses for each user equipment; (c)selecting, by the computing device, the second user equipment from thedetermined set of one or more user equipment based on at least one of: areceived acknowledgement message from the second user equipment that therequest was accepted and a set of criteria, where the set of criteriamay be determined based on available operators within travel range andprevious ranking of each operator; and (d) streaming, by the second userequipment to the first user equipment, video data being recorded by thesecond user equipment once the second user equipment is in the locationspecified by the first user equipment.

Optionally, the determining the set of criteria may be further based onobtaining a provider coverage information for the location specified bythe received request from the first user equipment. In some embodiments,the request for dispatching an operator may further comprise at leastone of: an estimated video quality threshold, an estimated time ofarrival, and an estimated value. Optionally, the associated keep alivemessage may comprise an authentication token and the associated statusesmay comprise diagnostic information.

In some embodiments the method may further include the step of:decrypting, by the computing device, the authentication token receivedas an encrypted message; and extracting, by the computing device, aunique identification (ID) associated with each user equipment of theset of one or more user equipment. Additionally, the method may includethe step of returning, by the computing device, a status updateimmediately to each user equipment of the set of one or more userequipment based on a successful decryption of the authentication tokenand whether the authentication token is found to be valid via a check ofa client blacklist table. In one embodiment, the computing device may bebetween the first user equipment and a second user equipment, therebythe computing device may be in communication with the first userequipment and the second user equipment via a set of communicationchannels.

Other embodiments include methods, systems, and devices where, forexample a system embodiment may include: (i) a computing device, (ii) afirst user equipment, and (iii) a second user equipment; where the firstuser equipment comprises a processor and addressable memory, theprocessor configured to: send a request to the computing device fordispatching another user equipment, where the request for dispatching isa request for video data streaming; where the computing device comprisesa processor and addressable memory, the processor configured to: (a)receive, from the first user equipment, the request to dispatch anotheruser equipment, where the request for dispatch comprises a location forvideo data streaming; (b) determine a set of one or more user equipmentto send the received request to, the determination based on the receivedrequest and connectivity status, where the connectivity status of theset of one or more user equipment is determined based on accessing adata store comprising associated keep alive messages and associatedstatuses for each user equipment; (c) select the second user equipmentfrom the determined set of one or more user equipment based on at leastone of: a received acknowledgement message from the second userequipment that the request was accepted and a set of criteria, where theset of criteria is determined based on available operators within travelrange and previous ranking of each operator; and where the second userequipment comprises a processor and addressable memory, the processorconfigured to: stream video data being recorded by the second userequipment once the second user equipment is in the location specified bythe received request from the first user equipment.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in thefigures of the accompanying drawing, and in which:

FIG. 1 depicts an on-demand live streaming video computing system wherea requester and a number of devices are in communication with anetworked server;

FIG. 2 depicts an exemplary embodiment of a computing system thatincludes a user equipment (UE), a plurality of wireless local areanetwork devices, and a networked computing device;

FIG. 3A illustrates an exemplary top level functional block diagram of acomputing device embodiment;

FIG. 3B depicts a function block diagram of the embodiment having acommunication medium;

FIG. 4 is a flow chart of an exemplary top level functional process of aserver computing device embodiment;

FIG. 5 is a flow chart of an exemplary top level functional process of aserver computing device embodiment;

FIG. 6 is a flow chart of an exemplary top level functional process of aserver computing device embodiment.

FIG. 7 is a flow chart of an exemplary top level functional process of aserver computing device embodiment; and

FIG. 8 is a flow chart of an exemplary top level functional process of aserver computing device embodiment.

DETAILED DESCRIPTION

Exemplary embodiments of the live video and audio streaming from aremote location comprise a requester device comprising an operatingsystem and a data store, an operator device comprising an operatingsystem and a data store, and a computing device comprising an operatingsystem and a data store. The system effects streaming of live video andaudio based on a request received from a consumer or requester device.The devices may comprise an application program running on the operatingsystem to process streaming of video and audio captured by the operatordevice. The operator device may then communicate the video and audiostream along with a set of associated information to the requesterdevice which will then be able to view the video live. The operatordevice may transmit the video and associated information to therequester device via the server computing device and via, for example,wireless Wi-Fi®, wireless local area network (WLAN), or other wirelessnetworks with broadcast methods such as Long Term Evolution (LTE),Bluetooth, and/or any other hardware or software radio broadcastmethods. The server computing device may connect and work with any suchdevices that may use LTE or WLAN, for example, mobile phones,specifically smartphones, personal computers, video game consoles,tablets, televisions, and/or digital cameras, to connect to a networkresource such as the Internet via wired or wireless communication. Inone embodiment, the system may manage a large number of devices in acrowded environment, so as to process multiple requests from consumers,where each of the multiple requests may specify a location that isneeded to be travelled to and capture live or recorded video and/oraudio at that location. Embodiments of the computing system maydetermine a ranking of operator devices based on pulling a providercoverage map for a specified job location, assigning a score to eachresponding operator device based on the provider coverage map and thenselect a set of available operators within driving or travel range ofthe job location. Other embodiments may take into consideration theestimated time of arrival for the operator into the ranking or scoringor operator devices. In one embodiment, the signal strength history fromprevious users in the area may be used to rank and score each respondingoperator or in addition to or instead of the coverage map—in scenarioswhere such coverage map is not available. Accordingly, the system mayrank operator device users based on distance, rating, and provider scorein order to dispatch the highest ranked operator first.

The server computing device may collect and store a set of associatedinformation for each operator via, for example, being granted access tothe camera related data of the device. Additionally, access to the GPSand Bluetooth components may be incorporated so as to allow theapplication running on the operating system of the device to collect andstore the relevant information associated with each operator. That is,upon the launch and execution of the application program, theapplication program may begin to pull information from the device's manycomponents so as to determine a set of criteria needed by the servercomputing device to assign requests to the different devices, i.e.,operators. The server computing device may also perform a GPSverification of where the operator is located in view of the requestedlocation where the requester desires the video and audio stream to betaken from. The server computing device may use different means, forexample, a provider coverage map of the location and/or an estimatedsignal strength of the operator at the location, to determine a rankingwhich would constitute a scoring system for which operator may receivethe request. Alternatively, the location information may be used todetermine which operator may receive the request first as part of thefirst group of operators able to satisfy the request. Additionally, theoperator device may have an associated customer qualification for theparticular dispatch. In one embodiment, the operator's customerqualification and the associated information, for example, comprising:GPS location, Camera capability, phone upload speed, coverage map, andother optional data gathered may be transmitted via the aforementionedmediums to the server computing device for processing.

In one embodiment of the system for live video and audio streaming froma remote location, the system may employ a ‘keep alive’ messagingfeature where a scalable method for securely tracking connectivitystatus, for example, remote client connectivity, may be executed withminimal and selective database access. In one exemplary embodiment, thesystem utilizes computing devices and because of a peer-to-peer natureof the application, an updated list of clients needs to be available fordispatch. Additionally, the system may need to determine when a client,i.e., operator, has a connection issue in order to ensure quality ofservice for the service requesters. The exemplary scenario where anoperator may be asked to travel to a location while the requester is nolonger available needs to be avoided and likewise, an exemplary scenariowhere the requester's live video and audio feed is terminated or theoperator has disappeared, e.g., lost connection. In the exemplaryembodiment of the system for live video and audio streaming from aremote location, the system may implement a communication scheme whereeach user or client, whether an operator or requester, transmits aheartbeat signal to the server computing device. The heartbeat signalmay comprise an authentication token and diagnostic information, forexample, GPS, battery %, carrier, connection type, etc.

In one embodiment of the system for live video and audio streaming froma remote location, a proxy server may be used in order to receive allrequests, i.e., all requests will pass through the proxy server. Theproxy server may perform throttling by allowing any one client to sendonly N number of requests per minute, or any predetermined unit of time.A heart rate may be determined as the rate at which heartbeat requestsare sent. The heart rate may be made configurable and accordingly, thethrottle on the proxy server may be adjusted to a sane/well-balancedlimit based on the heart rate. In this embodiment, the proxy server mayblock any client which may be exceeding the throttle limit, therebyproviding security by ensuring that any denial of service (DoS) attackon the API may not be able to hit the application servers more than afew times.

In the exemplary embodiment comprising the server computing device, theserver may first receive the authentication token and decrypt theauthentication token as part of the heartbeat. The authentication tokenmay be comprised of several pieces of hashed information, for example,the client's account identification (ID). Accordingly, the client ID maybe extracted from the decrypted authentication token and once theauthentication token has been successfully decrypted and found to bevalid, the server computing device may return a status update, forexample, “200 OK” immediately (i.e., in real-time) to the client andclose the connection from the client. This will allow for freeing up ofthe connection as soon as possible and may keep latency low in order toallow for handling of many more connections per heartbeat server. Theauthentication token may also be compared against a black list, and inthe event that an entry exists for the authentication token in theblacklist, a status, for example, “403 forbidden” may be returned to theclient, denying the client access. A cache comprising authenticationtokens may be checked to see if a record for the authentication tokenpassed in by the client exists, thereby speeding up the processing ofeach authentication token. The cache may be used to avoid hitting theclient account database on every request. Since heartbeats may be sentfrequently, therefore, database access performed on every request, theserver computing device may allow for scaling and increase processingspeed in conjunction with the rest of the application.

If the cache record does not exist, the client ID extracted from aprevious step may be used to query the client database for the clientaccount data. Attributes of the client account may also be checked toensure that the account is valid/in good standing/or allowed to proceed.If the attributes do not pass this check, the client may then be placedon the blacklist and a status “403 forbidden” (Deny) may be returned tothe client. If the attributes pass this check, the client record may bewritten to the cache and a status “200 OK” (Allow) may be returned tothe client. Details of the heartbeat and client account may be logged toa persistent data store in either case for future processing and usage.

If the cache record does exist, the client account data may be pulledfrom the cache. Attributes of the client account may be checked toensure that the account is valid/in good standing/allowed to proceed. Ifthe attributes do not pass this check, the client may be placed on theblack list, the client cache record will be removed, and a status “403forbidden” (Deny) may be returned to the client. If the attributes passthis check, the client record may be updated in the cache and a status“200 OK” (Allow) may be returned to the client. Details of the heartbeatand client account may be logged to a persistent data store in eithercase.

In an exemplary computing system embodiment, once the server computingdevice receives the request from a consumer, i.e., requester, andassociated information, it may then execute a series of steps in orderto process the received information. The server computing device mayexecute a script running on the operating system to launch a computerimplemented method operating a number of components configured todetermine the best suited operator available for the requested job,including, but not limited to, a ranking that may be determined based ona number of criterions. In one exemplary embodiment, the consumer maysend, via their user equipment, e.g., personal computer, tablet, ormobile device, a request to the server computing device for dispatchingan operator of another user equipment, where the request for dispatchingthe operator comprises a location, a video quality, estimated time ofarrival, and price, specified by the consumer or determined by thesystem. Once the request is received, the server computing device maythen select a set of operators from amongst a set of available operatorsof user equipment to send the request to. The server computing devicemay make the selection based on the received request and a set ofcriteria, where the set of criteria is determined based on at least oneof, for example, obtaining information regarding the estimate time ofarrival at the requested location by the operator which may itselfinclude the speed of travel capability, a provider coverage map for thelocation in the request, a set of attributes associated with the deviceof the operator, and the available operators that are within drivingrange—whether that range is predetermined by the requester, theoperator, or the server computing device. Additionally, the servercomputing device may determine the set of criteria based on previousrankings of the set of operators being considered, a number ofqualifications associated with the operator, and current locationaffecting the estimated time of arrival to the destination.

Once the set of operators to whom the request will be sent is determinedby the server computing device according to the aforementioned criteria,the request may be sent to the operators to determine which of theoperators accept the request and send an acknowledgement to the servercomputing device, to be forwarded to the requesting consumer, that therequest was accepted. Once the connection is made, the server computingdevice may effect the streaming of live video once the user equipment isin the location specified by the requester and recording has started.The server computing device may determine whether the streaming maybegin by checking to see if the operator is within a predeterminedproximity of the location from which the streaming is requested. Thatis, the operator may not go live with the video streaming until theyhave reached the location or are within an acceptable distance of thelocation, where the acceptable distance may be predefined by the servercomputing device.

The server computing device may execute a series of steps to: a) processmultiple requests simultaneously, each of the multiple requestsspecifying a point of interest (POI) location that is within ageographic region; b) determine, while the requests are outstanding, aset of potential operators at or about the geographic region who arecapable of performing the request and within a specified period of time,i.e., able to get to the location with an acceptable estimated time ofarrival; c) decrease the period of time necessary to perform and fulfillthe request while increasing the likelihood that the outcome of thevideo stream is at or above an expected threshold by the requester; andd) reduce any associated costs to the requester. Optionally, the servercomputing device may perform the step of ensuring an operator isselected for each of the multiple requests. Accordingly, the servercomputing device may determine an optimized process for the livestreaming of video from an operator to a requester for a specifiedlocation.

The embodiments of the computing system utilize a data store, forexample, a database, where related information is stored and assigned toeach operator. The database may store the data being streamed from theselected operator to the requester and maintain control over the mediacreated and outputted on the device of the requester. In an embodimentwhere a live stream is not available, the computing system may insteadrecord the video to the operator device to be streamed to the consumerat a later time. Each operator may be assigned a unique identifier bythe server computing device so as to identify the transmitted data tothe requester's computing device. The token may then enable therequester to provide instructions and/or directly operate the operator'sdevice in order to enable control of the direction and/or position ofthe device, where the requester may be essentially present andinstructing the view that is streamed and outputted to the requester'scomputing device.

In one embodiment, the medium for allowing a separate communication pathmay be done via setting up a separate channel for voice communication.In this exemplary embodiment, a common-channel signaling may be utilizedso the transmission of signaling information (control information) maybe effected on a separate channel from the data, and, more specifically,where the signaling channel may control data channel communication and avoice channel may be used for direct communication between the requesterand operator. According to this embodiment, while the data may betransmitted from the operator device to the requester device via theserver computing device, the voice communication medium may be directlyestablished between the two devices. Alternatively, in one scenario, thedata may be transmitted directly between the two devices and the voicecommunication may be transmitted first to a central server that may thenbroadcast the voice to one or more other devices. As such, while analogtransmission that is the transfer of a continuously varying analogsignal over an analog channel is maintained on one channel, digitalcommunications that is the transfer of discrete messages over a digitalor an analog channel may be maintained on a different channel. That is,embodiments of the live video and audio streaming from a remote locationmay implement a two-channel communication method where while the videomay be transmitted or broadcasted on one channel either directly betweentwo devices, the requestor device and operator device, the audio may betransmitted or broadcasted on a separate channel either directly betweentwo devices. Accordingly, the audio may be transmitted directly and thevideo to the server computing device for processing before then beingtransmitted to the other device or the audio may be transmitted to theserver device for processing before then being transmitted to the otherdevice while the video may be transmitted directly between the devices.

The exemplary server computing device may create a system where anon-demand video streaming service is offered. For example, a servercomputing device may maintain a queue that comprises a plurality ofoperator tokens/identifiers corresponding to a plurality of operators.Each operator identifier may be added to the queue in response toreceiving a request for service from a corresponding requester. Theserver computing device may facilitate the exchange of informationbetween a requester and operator where the requester may receive a setof offers from a plurality of operator devices that the one or moreoperators are available to provide service to the requester. In responseto receiving the offers, the requester computing device oralternatively, the server computing device, may select an operator fromthe queue to assign a corresponding requester to the operator based, atleast in part, on specified on-demand service locations corresponding tothe plurality of requester's requests and a current location of theoperator. Optionally, the server computing device may verify the currentlocation of the operator just before streaming is started by validatingthe GPS location against a globally unique map created from a number ofPOIs and road maps.

A system and method for arranging a video streaming service may becreated based on a server computing device receiving a request for videostreaming at a specified location from a computing device of a provider.In response to the received request, the server computing device maydetermine a plurality of operators that maintain a capability to providevideo streaming for the first requester via determining a set ofoperators that are each within a predetermined distance from thespecified location and that are not currently engaged with anotherrequester. Accordingly, the determining of the set of operators may bebased on a respective destination location that is within a thresholddistance or threshold estimated travel time from the specified locationby the requester. The server may select an operator from the pluralityof operators to provide the video stream for the requester so that videoquality and video length satisfy the requirements set forth by therequester. In one embodiment, the requester's media player may begin toplay the data (such as the video) before the entire file has beentransmitted; that is live streaming, which refers to content deliveredlive over the Internet, may be delivered via an encoder to digitize thecontent. Optionally, the video stream may be compressed using a videocodec as is well known in the art.

FIG. 1 depicts an on-demand live streaming video computing system 100where computing device of a requesting user, i.e., requester 140 and anumber of devices, i.e., providers or operators 110, 115, 120, are incommunication with a networked server 145. In one embodiment, thenetworked server 145 may be accessible via the internet and so thedevices may push their availability for service and related dataassociated with the device via a router to the networked server 145.Once the networked server 145 receives and processes the related datafrom the mobile devices of the operators 110, 115, 120, the networkedserver 145 may then perform the disclosed steps. Subsequently, therequester 140 may be in communication with the networked server 145 viaa communication medium 150, and they may communicate with the devices.That is, once the networked server 145 receives a request from therequester 140, the networked server 145 may determine which users shouldbe receiving the request—this may be done based on the related data theyhave sent to the networked server 145. For example, devices of theoperators 110, 115, 120 may provide information about their battery life(or remaining battery power), location information, speed of travelcapability, and camera capability to the networked server 145. Oncedetermined that the users of a first operator device 115 and a secondoperator device 120 are capable of carrying out the request receivedfrom the requester 140, the networked server 145 may then provide thelist of users (i.e., operators) so that the requester may select whichoperator they want selected. Alternatively, the networked server 145 maydetermine the best fit for the request based on the aforementionedcriteria and send a request to the first operator device 115 and thesecond operator device 120 to see if they are interested in fulfillingthe request. Optionally, the networked server 145 may provide a scoringtable to the requester to help the requester decide which operator toselect from amongst a list of qualified operators. This may be done, forexample, via using a provider coverage map overlay method disclosedherein.

Typically, the server may perform assigning of a unique ID to eachtransaction in order to track the users and their potentialcommunication. In one embodiment, the ID may be for purposes of keepinga log of communications and also determining a cost associated with eachtransaction. Additionally, this function may be accomplished inreal-time or near real-time by the server computing device or at a latertime when information is transmitted from the devices and internetaccess is available. Optionally, in an environment where an internetconnection is not available, other modes of validation may be used tovalidate the transactions, such as the application running locally onthe device.

The networked server computing device 145 may be operably coupled to aWAN network 150 and may communicate with other devices via variousmeans, including, for example, via wired or wireless network segments,such as radio frequency, infrared, and/or microwave. In some embodimentsvarious protocols and programming languages may also be used, such astransmission control protocol (TCP) over Internet Protocol (IP)—TCP/IP,User Datagram Protocol (UDP) with multi-cast data communication plans,Real Time Protocol (RTP) for data streaming, hypertext transfer protocol(HTTP) with hypertext markup language (HTML), simple object accessprotocol (SOAP) with extensible markup language (XML), and othercommunication means adapted to operably connect the networked computingdevice 145 with the other devices within the computing system 100.

FIG. 2 depicts an exemplary embodiment of a computing system 200 thatincludes a user equipment (UE), e.g., mobile devices 210, 215, aplurality of wireless local area network devices (WLANs) 220, 225, anetworked computing device 240 that may host a virtual network computingserver 260, and a Wide Area Network (WAN) 250 that may provide access tothe Internet or other content sources. In some embodiments, for example,a connection 230 may be established between the WLANs 220, 225 and thenetworked computing device 240. In some embodiments, the networkedcomputing device 240 may be connected to the WAN 250 and have access tothe Internet. Additionally, the computing system 200 depicts thenetworked computing device 240 being outside of a network and the mobiledevices 210, 215 may be in communication with the server 260 running onthe networked computing device 240 via the WAN 250. The server 260running on the networked computing device 240 may have the ability touse, for example, a provider coverage component 265 to determine whetherthe provider mobile device may have coverage for that particularprovider at the specified location by the requester. This may befacilitated via the server 260 and provider coverage component 265communicating with mobile devices 210, 215 to determine their status,for example, the company providing coverage, the signal strength, andanticipated signal strength at the specified location. Other criteriamay be employed where information relating to the mobile devices 210,215 may be used in lieu of or in addition to the provider coverage map,thereby allowing the networked computing device 240 to determine whichof the mobile devices 210, 215 may be more suited for the particularrequest.

In an embodiment comprising multiple UEs, e.g., a first mobile device210 and a second mobile device 215, the mobile devices 210, 215 mayexecute a set of one or more applications via an operating system (OS)that may be running on the device. The applications may be incommunication with the networked computing device 240 in real-time ornear real-time, e.g., the application running on the first mobile device210 and the application running on the second mobile device 215—via theoperating system—and simultaneously transmit relevant informationassociated with each request by the requester and availability of theprovider to the server. The server then, according to whether the stepsof identifying potential users were identified that have the ability,e.g., meet certain thresholds, to carry out the request successfully,populates a list of providers to the requester. That is, the rules whichhave been defined were executed and the networked computing device 240determined, based on a set of information, for example, providercoverage map, estimated time of arrival, and location information, whichproviders are available and capable of providing the desired videostreaming quality at the desired location. In one embodiment, thedesired video stream may be transmitted to one or more consumer devicessimultaneously, thereby effecting the broadcasting of such stream tomultiple devices.

The application may be executed in an environment where data that mayinclude streaming video data, may be transmitted to and received by acomputing device. The exemplary mobile devices 210, 215 may performerror correction and error concealment for the video data stream andother associated data being transmitted to the networked computingdevice 240, thereby allowing the user to transmit over any connectionspeed. The application may further provide a convenient user interfaceto view the video stream in which they have the ability to requestcertain actions from the provider.

FIG. 3A illustrates an exemplary top level functional block diagram of acomputing device embodiment 300. The exemplary operating environment isshown as a computing device 320 comprising a processor 324, such as acentral processing unit (CPU), addressable memory 327, an externaldevice interface 326, e.g., an optional universal serial bus port andrelated processing, and/or a Communication or Network Communication portand related processing, and an optional user interface 329, e.g., anarray of status lights and one or more toggle switches, and/or adisplay, and/or a keyboard and/or a pointer-mouse system and/or a touchscreen. Optionally, the addressable memory may, for example, be: flashmemory, EPROM, and/or a disk drive or other hard drive. These elementsmay be in communication with one another via a data bus 328, and via anoperating system 325 such as one supporting a web browser 323 andapplications 322, the processor 324 may be configured to execute stepsof a process for determining the best match for a request received froma consumer/user requester where the consumer/user is requesting livevideo stream from a specified location and in conjunction with a set ofother criteria.

FIG. 3B depicts a function block diagram 340 of the embodiment having acommunication medium 350 for allowing separate communication paths forvoice and data. In this exemplary embodiment, a plurality ofcommunication channel for signaling audio and video data transmissionmay be employed. The audio/video data component of the first device 310may be in directly communication with the audio/video data component ofthe second device 315 via two separate communication channels 341, 342.The audio/video data component of the first device 310 may also be incommunication with the server computing device 360 via two separatecommunication channels 344, 345. Additionally, the audio/video datacomponent of the second device 315 may also be in communication with theserver computing device 360 via two separate communication channels 347,348. Accordingly, communication of audio data may be possible on aseparate channel from the video data, and, more specifically, where thesignaling channel may control different channel communications.According to this embodiment, while the data may be transmitted from theoperator device, e.g., second device 315 to the requester device, e.g.,first device 310 via the server computing device 360, the voicecommunication medium may be directly established between the two devicesvia the communication channels 341, 342. Combinations of differentcommunication methods may be achieved via the exemplary embodiment.

FIG. 4 is a flow chart of an exemplary top level functional process of aserver computing device embodiment that may include an exemplary methodof implementation of a server computing device that may determine anoperator to pair with a requester for satisfying a specific request,from the requester, for live video streaming at a specified location.The exemplary method of the system and associated computing devices maycomprise the following steps: a consumer/user requests theaforementioned services by launching an application—either via an apprunning on a mobile device operation system or a web browser (step 410);the launched application dispatch finds an operator with the bestranking according to the criteria disclosed herein (step 420); theoperator may then be shown the job request and given an opportunity toaccept or reject the job (step 430); if the operator accepts the request(step 440), then the operator may begin streaming the live video as soonas they reach the specified location (step 450); if the operator rejectsthe request (step 440), then the application may determine a secondoperator suitable for the request and send the job request to (step420); upon acceptance and once the operator begins streaming the livevideo, the consumer/user may accept the stream and begin viewing thelive stream on their computing device (step 460); and, when the streamis completed, the system may determine the billable amount and then theconsumer may be billed (step 470).

FIG. 5 is a flow chart of an exemplary top level functional process of aserver computing device embodiment that may include an exemplary methodof implementation of a server computing device that determines aconsumer data flow for requesting live video streaming at a specifiedlocation. The exemplary method of the system and associated computingdevices may comprise the following steps: determine whether a consumeris registered (step 510); if the consumer is registered, then theconsumer may be logged in upon verification of their login information(step 520); if the consumer is not already registered, then they need togo through the registration process (step 530); once the consumer islogged in (step 540), they may view a screen showing the map ofpotential areas they can request the live stream for (step 550);subsequently, the consumer may drop a pin on the desired location on themap view (step 560), then, based on the methods described herein, theoperator is dispatched (step 570); the next step would then be to havethe streaming started between the operator and consumer/user requestingthe service (step 580); and, when the stream is completed, the systemmay stop the stream and bill the consumer/user (step 590).

FIG. 6 is a flow chart of an exemplary top level functional process of aserver computing device embodiment that may include an exemplary methodof implementation of a server computing device that determines anoperator data flow for responding to requests for live video streamingat a specified location. The exemplary method of the system andassociated computing devices may comprise the following steps: determinewhether an operator is registered (step 610); if the operator isregistered, then the operator is logged in upon verification of theirlogin information (step 620); if the operator is not already registered,then they need to go through the registration process (step 630); oncethe operator is logged in (step 640), they may request that they be setas an available operator and wait for dispatch to travel to a locationand live stream video (step 650); then the operator may accept a jobdispatched for a desired location by the requester (step 660),subsequently, based on the location received, the operator proceeds tothat location (step 670); the next step would then be to have thestreaming started between the operator and consumer/user (step 680);and, when the stream is completed, the system stops the stream and billsthe consumer/user (step 690).

FIG. 7 is a flow chart of an exemplary top level functional process of aserver computing device embodiment that may include an exemplary methodof implementation of a server computing device that determines adispatching data flow after receiving a job request from a consumer oruser and a responder responding to the requests for live video streamingat a specified location. The exemplary method of the system andassociated computing devices may comprise the following steps: receive ajob request (step 710); the server computing device may then pull aprovider coverage information for the job location received as part ofthe job request (step 720); the server computing device may then assigna score to each provider for the job location (step 730); the servercomputing device may then pull the available operators within a drivingrange of the received job location (step 740), the server computingdevice may then rank operators based on distance, rating, and providerscore for dispatch to travel to a location and live stream video (step750); according to the step 750, the server computing device may thendispatch the highest ranked operator (step 760), then, based on whetherthe operator accepts the job (step 770); the server computing device maythen remove the operator from ranking (step 780); and, once the operatorhas accepted the job, the server computing device may then dispatch theoperator (step 790).

FIG. 8 is a flow chart of an exemplary top level functional process of aserver computing device embodiment that may include an exemplary methodof implementation of a server computing device 800 that utilizes a cachefor client account information for performing ‘keep alive’ messages orsignals. In this embodiment, the client, either requester or operator,may send heartbeat signals to the server computing device (step 810).The heartbeat may then be received at the heartbeat proxy (step 820) andthen sent to the heartbeat server (step 830) which may then decrypt theauthentication token (step 840). If the authentication token isverified, it may then be allowed to move to the server (step 850). Ifthe authentication token is determined to be blacklisted (step 860), bychecking a client blacklist persistent store (865) then the heartbeat isdenied (step 870); if the authentication token is not blacklisted, theserver may check to see if the client is already cached (step 880) bychecking an active client cache (885). If I it has already been cached,then the server may determine whether the client status is valid (step890); and if client is not cached, the server may extract the client ID(step 900) and look up the client account (step 910) by way of checkingthe client account database (915). If the client status is valid, theserver may write the client into the cache (step 920); and add theclient information to the active client cache (885). If the clientstatus is invalid, the server may add the client to a black list (step930) by accessing the client blacklist (865) and/or remove the clientfrom cache (step 940) by accessing the active client cache (885).Whether the client status is valid or invalid, the server may log therequest data (step 950). In this embodiment, the active client accountcache (885) may be the data source powering operator searches fordispatch.

It is contemplated that various combinations and/or sub-combinations ofthe specific features and aspects of the above embodiments may be madeand still fall within the scope of the invention. Accordingly, it shouldbe understood that various features and aspects of the disclosedembodiments may be combined with or substituted for one another in orderto form varying modes of the disclosed invention. Further it is intendedthat the scope of the present invention herein disclosed by way ofexamples should not be limited by the particular disclosed embodimentsdescribed above.

What is claimed is:
 1. A device comprising: a processor and addressablememory, the addressable memory comprising a set of one or more rules,wherein the device is in communication with a first user equipmenthaving a processor and addressable memory and a second user equipmenthaving a processor and addressable memory, and wherein the processor isconfigured to: receive, from the first user equipment, a request todispatch the second user equipment, wherein the request for dispatchcomprises a request for a multi-channel communication for a real-timevideo data streaming and real-time audio data streaming; determine a setof one or more user equipment to send the received request to, based onthe received request and connectivity status, wherein the connectivitystatus of the set of one or more user equipment is determined based onaccessing a data store comprising associated keep alive messages andassociated statuses for each user equipment; generate a uniqueidentifier associated with the first user equipment requesting videodata streaming and audio data streaming; provide the request fordispatch and generated unique identifier to the set of one or more userequipment; select the second user equipment from the set of one or moreuser equipment based on a received acknowledgement message from thesecond user equipment that the request was accepted; establish a directcommunication channel for transmitting audio data directly between thefirst user equipment and the second user equipment based on thegenerated unique identifier; and establish a separate communicationchannel for transmitting streamed video data from the second userequipment to the first user equipment, wherein the streamed video datais transmitted based on the generated unique identifier and viacombining the direct communication channel and the separatecommunication channel.
 2. The device of claim 1 wherein the receivedrequest to dispatch further comprises at least one of: an estimatedvideo quality threshold and an estimated value.
 3. The device of claim 1wherein the associated keep alive message comprises an authenticationtoken.
 4. The device of claim 3 wherein the associated statusescomprises diagnostic information.
 5. The device of claim 4 wherein theassociated keep alive messages and associated statuses are received asan encrypted message and decrypted by the computing device.
 6. Thedevice of claim 5 wherein the processor is configured to extract aunique identification (ID) from the decrypted associated keep alivemessages and associated statuses for a user equipment based on theauthentication token having been successfully decrypted.
 7. The deviceof claim 6 wherein the processor of the device utilizes a separateprocess to return a status update immediately to the user equipment ofthe set of one or more user equipment that sent the associated keepalive messages and associated statuses.
 8. The device of claim 7 whereinthe processor of the device is further configured to return the statusupdate based on whether the authentication token is found to be validvia a check of a client blacklist table.
 9. The device of claim 1wherein the device further comprises a second data store for logging aset of associated information for each user equipment.
 10. The device ofclaim 1 wherein the device is between the first user equipment and thesecond user equipment, thereby the device is in communication with thefirst user equipment and the second user equipment via a set ofcommunication channels.
 11. A method comprising: sending, by a firstuser equipment having a processor and addressable memory, a request to acomputing device having a processor and addressable memory, fordispatching a second user equipment having a processor and addressablememory, wherein the request for dispatching an operator comprises arequest for multi-channel communication for real-time video datastreaming and real-time audio data streaming; determining, by thecomputing device, a set of one or more user equipment to send therequest to, the determining based on the received request andconnectivity status, wherein the connectivity status of the set of oneor more user equipment is determined based on accessing a data storecomprising associated keep alive messages and associated statuses foreach user equipment; generating, by the computing device, a uniqueidentifier associated with the first user equipment requesting videodata streaming and audio data streaming; providing, by the computingdevice, the request for dispatch and generated unique identifier to theset of one or more user equipment; selecting, by the computing device,the second user equipment from the set of one or more user equipmentbased on a received acknowledgement message from the second userequipment that the request was accepted; establishing, by the computingdevice, a direct communication channel for transmitting audio datadirectly between the first user equipment and the second user equipmentbased on the generated unique identifier; and establishing a separatecommunication channel for transmitting, by the second user equipment tothe first user equipment, video data being recorded by the second userequipment based on the generated unique identifier and via combining thedirect communication channel and the separate communication channel. 12.The method of claim 11 wherein the request for dispatching an operatorfurther comprises at least one of: an estimated video quality thresholdand an estimated value.
 13. The method of claim 11 wherein theassociated keep alive message comprises an authentication token.
 14. Themethod of claim 13 wherein the associated statuses comprises diagnosticinformation.
 15. The method of claim 14 further comprising: decrypting,by the computing device, the authentication token received as anencrypted message; and extracting, by the computing device, a uniqueidentification (ID) associated with each user equipment of the set ofone or more user equipment.
 16. The method of claim 15 furthercomprising: returning, by the computing device, a status updateimmediately to each user equipment of the set of one or more userequipment based on a successful decryption of the authentication tokenand whether the authentication token is found to be valid via a check ofa client blacklist table.
 17. The method of claim 11 wherein thecomputing device is between the first user equipment and a second userequipment, thereby the computing device is in communication with thefirst user equipment and the second user equipment via a set ofcommunication channels.
 18. A system comprising a computing device, afirst user equipment, and a second user equipment; wherein the firstuser equipment comprises a processor and addressable memory, theprocessor configured to: send a request to the computing device fordispatching another user equipment, wherein the request for dispatchingis a request for a multi-channel communication for a real-time videodata streaming and real-time audio data streaming; wherein the computingdevice comprises a processor and addressable memory, the processorconfigured to: receive, from the first user equipment, the request todispatch another user equipment; determine a set of one or more userequipment to send the received request to, the determination based onthe received request and connectivity status, wherein the connectivitystatus of the set of one or more user equipment is determined based onaccessing a data store comprising associated keep alive messages andassociated statuses for each user equipment; generate a uniqueidentifier associated with the first user equipment requesting videodata streaming and audio data streaming; provide the request fordispatch and generated unique identifier to the set of one or more userequipment; select the second user equipment from the set of one or moreuser equipment based on a received acknowledgement message from thesecond user equipment that the request was accepted; establish a directcommunication channel for transmitting audio data directly between thefirst user equipment and the second user equipment based on thegenerated unique identifier; and establish a separate communicationchannel for transmitting streamed video data from the second userequipment to the first user equipment, wherein the streamed video datais transmitted based on the generated unique identifier and viacombining the direct communication channel and the separatecommunication channel; and wherein the second user equipment comprises aprocessor and addressable memory, the processor configured to: streamvideo data being recorded by the second user equipment.